The present invention, in some embodiments thereof, relates to a way of carrying out slicing for three dimensional printing and, more particularly, but not exclusively, to a way that is particularly suitable for being implemented on a graphics card or graphical processing unit (GPU).
Three-dimensional (3D) inkjet printing in its broadest sense is a form of additive manufacture, in which any material that can be squeezed through an injection nozzle is applied in layers, in accordance with a plan or model, to form a three-dimensional object.
The model may be obtained in any one of a number of ways, for example by carrying out 3D measurements of an original product that it is desired to copy. Alternatively, a 3D design from a computer aided design (CAD) package may be used. As a further alternative, a 3D design may be generated by a user on the fly, using a suitable graphics package.
A 3D model cannot usually be manufactured in its final form, since each layer is molten when injected and usually has to be at least partially supported during its manufacture. Thus support structures are usually provided, which can subsequently be removed. Any printing plan for the object should include the printing of such support structures, and may incorporate a way of making the support structures easily removable following printing.
Furthermore, the 3D model may require colors and textures, textures being surface features of different kinds, which may simply be flat patterns, or may extend into the depth of the model to some extent. Likewise the support structure may have texture applied to it, particularly at the surface, for example in order to make it easily removable.
The 3D model may further include different materials for different locations. Thus waterproofing may be needed around an outer surface or a soft inside might require a hard shell etc.
The 3D model has to be converted into instructions in order to operate the print head. Typically the model is cut into slices and each pixel of each slice is then modified by a texture file. Likewise each individual pixel is tested against an envelope of the model to determine whether the pixel is inside the envelope and is part of the model, is below the envelope and therefore is part of the support or is outside the envelope and is thus not to be printed. The pixel is then modified for texture from a separate texture file. Instructions may then be generated to operate the printer head to print the slice.
Thus, the slices are generated pixel by pixel, requiring considerable memory since each pixel is individually remembered. The calculations are typically carried out on the Central Processing Unit (CPU) part of the computer, or may use customized calculations on the GPU, or other graphics hardware, the customized calculations being complicated and lengthy.
Graphical processing is generally available on most computers in the form of a GPU, typically provided in a separate graphics card. Graphics cards are designed with pipelines optimized for graphical processing in ways that bypass the calculations of individual pixels. However the graphics card is not used directly to produce the 3D printing instructions from the 3D model because the graphics card is designed to provide a 2D projection of a 3D image. 3D processing on a graphics card is typically built in with video games in mind, to rapidly produce the 2D projection. In 3D imaging the actual 3D shape, and not a projection, is required. Hence, if the graphics card is to be used for 3D printing, it can only be through customized solutions.